

package main.new_2024.month_06;


/**
 * @Description: todo 2938. 区分黑球与白球
 * 桌子上有 n 个球，每个球的颜色不是黑色，就是白色。
 * 给你一个长度为 n 、下标从 0 开始的二进制字符串 s，其中 1 和 0 分别代表黑色和白色的球。
 * 在每一步中，你可以选择两个相邻的球并交换它们。
 * 返回「将所有黑色球都移到右侧，所有白色球都移到左侧所需的 最小步数」。
 *
 * @Author: Take-off
 * @Date: 1:00 PM 2024/2/27
 * @Param:
 * @return:
 **/
public class Solution0606 {

    //区分黑球与白球
    public long minimumSteps(String s) {
        //从右往左数，计算0的个数，遇到1时累计0的个数 = 移动次数
        char[] chars = s.toCharArray();
        long zero = 0;
        long count = 0;
        for (int i = chars.length -1 ;i>=0;i--){
            char temp = chars[i];
            if (temp == '0'){
                zero++;
            }else {
                count = count+zero;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        Solution0606 test = new Solution0606();

    }
}

